package com.weather.common.utils;

import java.io.*;

/**
 * @author htc
 * @date
 * 【Base64】 https://www.cnblogs.com/hongru/archive/2012/01/14/2321397.html
 *   -base64的编码都是按字符串长度，以每3个8bit的字符为一组，
 *   -然后针对每组，首先获取每个字符的ASCII编码，
 *   -然后将ASCII编码转换成8bit的二进制，得到一组3*8=24bit的字节
 *   -然后再将这24bit划分为4个6bit的字节，并在每个6bit的字节前面都填两个高位0，得到4个8bit的字节
 *   -然后将这4个8bit的字节转换成10进制，对照Base64编码表 （下表），得到对应编码后的字符。
 *
（注：1. 要求被编码字符是8bit的，所以须在ASCII编码范围内，\u0000-\u00ff，中文就不行。
　　　2. 如果被编码字符长度不是3的倍数的时候，则都用0代替，对应的输出字符为=）
 */
public class Base64 {
    private static final char[] legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
            .toCharArray();

    public static String encode(byte[] data) {
        int start = 0;
        int len = data.length;
        StringBuilder buf = new StringBuilder(data.length * 3 / 2);

        int end = len - 3;
        int i = start;
        int n = 0;

        while (i <= end) {
            int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 0x0ff) << 8)
                    | (((int) data[i + 2]) & 0x0ff);

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append(legalChars[(d >> 6) & 63]);
            buf.append(legalChars[d & 63]);

            i += 3;

            if (n++ >= 14) {
                n = 0;
                buf.append(" ");
            }
        }

        if (i == start + len - 2) {
            int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 255) << 8);

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append(legalChars[(d >> 6) & 63]);
            buf.append("=");
        } else if (i == start + len - 1) {
            int d = (((int) data[i]) & 0x0ff) << 16;

            buf.append(legalChars[(d >> 18) & 63]);
            buf.append(legalChars[(d >> 12) & 63]);
            buf.append("==");
        }

        return buf.toString();
    }

    private static int decode(char c) {
        if (c >= 'A' && c <= 'Z') {
            return ((int) c) - 65;
        } else if (c >= 'a' && c <= 'z') {
            return ((int) c) - 97 + 26;
        } else if (c >= '0' && c <= '9') {
            return ((int) c) - 48 + 26 + 26;
        } else {
            switch (c) {
                case '+':
                    return 62;
                case '/':
                    return 63;
                case '=':
                    return 0;
                default:
                    throw new RuntimeException("unexpected code: " + c);
            }
        }
    }

    /**
     * Decodes the given Base64 encoded String to a new byte array. The byte
     * array holding the decoded data is returned.
     */

    public static byte[] decode(String s) {

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            decode(s, bos);
        } catch (IOException e) {
            throw new RuntimeException();
        }
        byte[] decodedBytes = bos.toByteArray();
        try {
            bos.close();
            bos = null;
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return decodedBytes;
    }

    private static void decode(String s, OutputStream os) throws IOException {
        int i = 0;

        int len = s.length();

        while (true) {
            while (i < len && s.charAt(i) <= ' ') {
                i++;
            }

            if (i == len) {
                break;
            }

            int tri = (decode(s.charAt(i)) << 18) + (decode(s.charAt(i + 1)) << 12) + (decode(s.charAt(i + 2)) << 6)
                    + (decode(s.charAt(i + 3)));

            os.write((tri >> 16) & 255);
            if (s.charAt(i + 2) == '=') {
                break;
            }
            os.write((tri >> 8) & 255);
            if (s.charAt(i + 3) == '=') {
                break;
            }
            os.write(tri & 255);

            i += 4;
        }
    }

    /**
     * @param filename
     * @param str
     * @throws Exception
     */
    public static void string2File(String filename, String str) throws Exception {
        //测试数据
//		String s = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz"
//				+ "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg"
//				+ "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu"
//				+ "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo"
//				+ "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";
//		String filenameTest="C:\\Users\\htc\\Desktop\\1111.txt";


        System.out.println("begin create file");
        byte[] bytes = decode(str);
        File file = new File(filename);
        if (!file.exists()) {
            file.createNewFile();
            System.out.println(filename + " create success !");
        }
        OutputStream outputStream = new FileOutputStream(file);
        InputStream inputStream = new ByteArrayInputStream(bytes);
        byte[] buff = new byte[1024];
        int len = 0;
        while ((len = inputStream.read(buff)) != -1) {
            outputStream.write(buff, 0, len);
        }
        inputStream.close();
        outputStream.close();
    }

    /**
     * 字符串->字节数组(UTF-8)->字符串(base64)
     *
     * @return
     */
    public static String save(String str) throws Exception {
        byte[] bytes = null;
        bytes = str.getBytes("UTF-8");
        return encode(bytes);
    }


    /**
     * 字符串  <- 字节数组(UTF-8) <- 字符串(base64)
     *
     * @param str
     * @return
     * @throws Exception
     */
    public static String read(String str) throws Exception {
        byte[] bytes = null;
        bytes = decode(str);
        return new String(bytes, "UTF-8");
    }

    public static void main(String[] args) throws Exception {
        String s = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz"
                + "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg"
                + "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu"
                + "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo"
                + "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";



        String test = "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";

        string2File("C:\\Users\\htc\\Desktop\\icon.png",test);

    }
}